package com.itheima.controller;

import com.itheima.pojo.Dept;
import com.itheima.pojo.Result;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 测试ioc与di
 * 使用IOC和DI时.
 * Bean对象的创建和获取都和IOC容器有关
 * Bean对象之间搭配使用 ,非bean对象不能调用bean对象 ,否则会报错
 */
@Slf4j
@RestController
@RequestMapping("ioc_di")
public class TestIOCAndDIController {

    /**
     * 属性注入优先使用@Resource
     *         默认按照Bean名字从容器中取
     *         默认的SpringBean名字是类对应的小驼峰
     *         不同包下有可能存在同名类
     *         解决办法 ->
     *         1.使用@Resource注解在创建Bean的时候也指定名字 @Resource(name = "dept")
     *         @Resourse 从ioc容器获取时也指定名字
     */
    @Resource
    Dept oooo;

    @GetMapping("/dept")
    public Result createDeptByIoc(){
        //使用Springboot ioc 自动创建一个Dept对象
        //Dept dept = new Dept();
        log.info("自动创建一个Dept对象{}", oooo);
        return Result.success(oooo);

    }
}
